import Vue from "vue";
import Vuex from "vuex";

// 导入本地存储中封装的 setItem, getItem 方法
import { setItem, getItem } from "../utils/storage.js";

Vue.use(Vuex);

// 声明 token 的 key 值
// 这里写个const声明能在一定程度上防止写错(写错回直接报)
const TOKNE_KEY = "TOUTIAO_USER";

export default new Vuex.Store({
  state: {
    // 存储当前登录的用户信息
    // user: null,
    // 将取出来的本地存储json格式进行转换；null是因为开始为null
    // user: JSON.parse(window.localStorage.getItem(TOKNE_KEY) || null),
    user: getItem(TOKNE_KEY) || null,
  },
  getters: {},
  mutations: {
    //对user进行修改
    setUser(state, data) {
      state.user = data;
      // 为了防止刷新丢失，我们需要把数据备份到本地存储
      // window.localStorage.setItem(TOKNE_KEY, JSON.stringify(state.user));
      // 由于vuex刷新回丢失数据
      setItem(TOKNE_KEY, state.user);
    },
  },
  actions: {},
  modules: {},
});
